<?php
/**
 * Autoload fa' in modo che quando viene instanziata una classe, questa sia disponibile,
*anche se non è stata inclusa nello script. Quindi evita di dover richiamare
*all'interno degli script i vari require delle classi. Ogni classe è provvista di un
*attributo $class_name. L'autoload controlla la prima lettera del classname, in
*questo modo, riesce a capire quale tipo di classe è stata instanziata e sa' trovare
*il percorso relativo al sorgente della classe. Una volta determinato il percorso
*nel quale sono contenute tutte le classi di quel tipo, l'interprete capisce dove andare
*a prendere metodi e attributi. Includendo autoload nella home, tale procedimento, è valido
*per tutte le classi incluse.
 * 
 * @package Includes
 */
global $config;
function vidwiz_autoload($class_name) {
    if(preg_match("/_vidwiz/", $class_name)){
        switch ($class_name[0]) {
            case 'V':
                require_once ($config['basedir'].'views/'.$class_name.'.php');
                break;
            case 'M':
                require_once ($config['basedir'].'models/'.$class_name.'.php');
                break;
            case 'C':
                require_once ($config['basedir'].'controllers/'.$class_name.'.php');
                break;
            case 'U':
                require_once ($config['basedir'].'utilities/'.$class_name.'.php');
                break;
            case 'E':
                require_once ($config['basedir'].'entities/'.$class_name.'.php');
                break;
            case (substr($class_name, 0, 15) == "Smarty_Internal"):
                $class_name = $config['basedir']."libs/Smarty/libs/sysplugins/" . strtolower($class_name); 
                require_once $class_name . ".php"; 

        }
    
    }
}

?>